<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Event
 *
 * @author Rodrigo
 */
abstract class Event {

    private $codigo;
    private $nome;
    private $descricao;
    private $dataInicio;
    private $dataTermino;
    private $patrocinadores = array();
    private $areas = array();
    private $instituicao;
    private $subEventos;
    
    protected $eventos = array();
    
    function __construct() {
        if(isset($_SESSION['eventosCadastrados'])){
             $this->eventos = $_SESSION['eventosCadastrados'];
        }
    }

    
    public function getSubEventos() {
        return $this->subEventos;
    }

    public function setSubEventos($subEventos) {
        $this->subEventos = $subEventos;
    }

    public function getInstituicao() {
        return $this->instituicao;
    }

    public function setInstituicao($instituicao) {
        $this->instituicao = $instituicao;
    }

    public function getAreas() {
        return $this->areas;
    }

    public function setAreas($areas) {
        $this->areas = $areas;
    }

    public function getPatrocinadores() {
        return $this->patrocinadores;
    }

    public function setPatrocinadores($patrocinadores) {
        $this->patrocinadores = $patrocinadores;
    }

    public function getCodigo() {
        return $this->codigo;
    }

    public function setCodigo($codigo) {
        $this->codigo = $codigo;
    }

    public function getNome() {
        return $this->nome;
    }

    public function setNome($nome) {
        $this->nome = $nome;
    }

    public function getDescricao() {
        return $this->descricao;
    }

    public function setDescricao($descricao) {
        $this->descricao = $descricao;
    }

    public function getDataInicio() {
        return $this->dataInicio;
    }

    public function setDataInicio($dataInicio) {
        $this->dataInicio = $dataInicio;
    }

    public function getDataTermino() {
        return $this->dataTermino;
    }

    public function setDataTermino($dataTermino) {
        $this->dataTermino = $dataTermino;
    }

    protected abstract function add();

    protected abstract function update();

    protected abstract function remove();

    public abstract function findEventos();

    public abstract function findEventoByCodigo($codigo);

    protected abstract function addPatrocinadorEvento($patrocinador);

    protected abstract function removePatrocinador($patrocinador);
}

?>
